package com.agri.constant;

/**
 * 融资服务常量
 */
public class FinancingConstant {
    // 融资订单状态
    public static final Integer STATUS_PENDING = 0; // 待审核
    public static final Integer STATUS_APPROVED = 1; // 已通过
    public static final Integer STATUS_REJECTED = 2; // 已拒绝
    public static final Integer STATUS_DISBURSED = 3; // 已放款
    public static final Integer STATUS_COMPLETED = 4; // 已完成
    public static final Integer STATUS_CANCELLED = 5; // 已取消

    /**
     * 验证状态流转是否合法
     */
    public static boolean isValidStatusTransition(Integer currentStatus, Integer targetStatus) {
        if (currentStatus == null || targetStatus == null) {
            return false;
        }

        // 待审核 -> 已通过/已拒绝
        if (STATUS_PENDING.equals(currentStatus)) {
            return STATUS_APPROVED.equals(targetStatus) || STATUS_REJECTED.equals(targetStatus);
        }

        // 已通过 -> 已放款
        if (STATUS_APPROVED.equals(currentStatus)) {
            return STATUS_DISBURSED.equals(targetStatus);
        }

        // 已放款 -> 已完成
        if (STATUS_DISBURSED.equals(currentStatus)) {
            return STATUS_COMPLETED.equals(targetStatus);
        }

        // 任何状态都可以取消
        if (STATUS_CANCELLED.equals(targetStatus)) {
            return true;
        }

        return false;
    }
}